1. Field of the Invention
Embodiments of the present invention relate generally to a method and system for transferring image data from a processor memory to remote communication endpoints. Specifically, a plurality of image sequences, generated by independent entities, in processor memory are prioritized and scheduled for transfer based on at least one of image status and communications resource availability.
2. Description of the Related Art
Existing remote desktop protocols include various proprietary and open source technologies, such as SGI's OpenGL-based Vizserver, IBM's Deep Computing Visualization (DCV), Mercury International Technology's ThinAnywhere, Citrix ICA, Microsoft Remote Desktop Protocol (RDP), and HP's Remote Graphics Software, Virtual Network Computing (VNC), VirtualGL, and the Chromium Renderserver (CRRS).
Recently, initiatives such as Virtual Desktop Infrastructure (VDI) from VMWARE and XENDESKTOP from CITRIX CORPORATION have enabled traditional Personal Computers to be replaced by virtual machines which are aggregated and hosted on a centralized processing platform such as computer server. The virtualized computers then connect to a client computer using some form of protocol such as one of the existing remote desktop protocols described.
In order to prevent visible tearing in a displayed image on a remote desktop, drawing commands and data structures known to the art may be utilized in the architecture for copying a desktop image from a framebuffer to a display. Such drawing commands and data structures enable separation of a display buffer and a drawing buffer using multi-buffering techniques. However, copying multiple desktop images from multiple frame buffers in a virtualized environment to multiple endpoints presents numerous challenges if the original desktop display image quality is to be maintained for the remote desktop images.
Therefore, there is a need in the art for a method and system for effectively communicating a plurality of desktop images in a virtualized environment to a plurality of remote endpoints.